home *** CD-ROM | disk | FTP | other *** search
- {The problem is that the pause key actually paUses the Computer
- via hardware. to reset the pause, you can use the timer interrupt
- to generate a reset process at every tick. The method here
- was taken from some Computer magazine.
- }
-
- Program TrapPause;
- Uses Dos;
- Var
- Timerint : Pointer;
- PauseFlag : Boolean;
-
- Procedure PauseDetect(flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP: Word);
- {This latches on to the system timer interrupt to detect if the
- pause key has been pressed, and if so to reset the system to allow
- operation to continue and to set Pauseflag = True}
- interrupt;
- begin
- if memw[$0:$418] and 8 = 8 then {Test bit 3}
- begin
- Pauseflag := True;
- memw[$0:$418] := memw[$0:$418] and $F7; {Set bit 3 = 0}
- end;
- Inline($9C/ {PushF}
- $3E/ {DS}
- $FF/$1E/timerint);{Far call to usual timer interrupt}
- end;
-
-
- begin
- Getintvec($08,Timerint); {Save old interrupt For timer}
- Setintvec($08,@PauseDetect); {Redirect timer to PauseDetect}
- end.
-